// 1. 两数之和
// 输入：nums = [2,7,11,15], target = 9
// 输出：[0,1]
// 解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。
// 思路：用哈希表 对每一个数字进行存储 然后用在哈希表中查找是否存在符合要求的数
// 用 hashMap 存储遍历过的元素和对应的索引。
// 每遍历一个元素，看看 hashMap 中是否存在满足要求的目标数字。
// 所有事情在一次遍历中完成（用了空间换取时间）。


/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
 var twoSum = function(nums, target){
     const prev={};
     for(let i=0;i<nums.length;i++){
        let cur=nums[i];//当前的数
        let findnum=target-cur;//需要寻找的数
        let findnumIndex=prev[findnum];//所需的数的索引
        if(findnumIndex!==undefined){
            return [findnumIndex,i];
        }else{
            prev[cur]=i;//对当前的数进行存储
        }
     }
 }